Low complexity detection in digital receivers

ABSTRACT

A receiver for receiving digital signals exposed to intersymbol interference as well as multiple access interference the method including linearly detecting said signals by combating said intersymbol interference by equalizing said received digital signals as well as mitigating said multiple access interference by detecting said digital signals by means of sliding window detection.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to detectors for use in digital receivers. The invention was developed by paying specific attention to the possible use in third generation (3G) UTRA TDD mode systems for downlink detection in mobile equipment. UTRA and TDD are widely used acronyms for Universal Terrestrial Radio Access and Time Division Duplex, respectively.

[0003] 2. Description of the Related Art

[0004] In Code Division Multiple Access (CDMA) system several independent users are simultaneously active in the same frequency band, and they are only separated by different user-specific signature sequences. A set of orthogonal code sequences of variable length (Orthogonal Variable Spreading Factor or OVSF) is used allowing a large flexibility in data transmission rate: see, for instance “The TD-CDMA based UTRA-TDD Mode”, by M. Haardt, A. Klein, R. Koehn, S. Oestreich, M. Purat, V. Sommer, T. Ulrich, IEEE Journal on Sel. Areas in Comm., vol. 18, n. 8, August 2000, pp. 1375-1385, which is incorporated herein by reference in its entirety.

[0005] Some efforts have been devoted to investigating receivers for multirate CDMA transmission: see, e.g., “Linear receivers for the DS-CDMA Downlink Exploiting Orthogonality of Spreading Sequences”, by I. Gauri, D. Slock, 32 ^(nd) Asilomar Conf. on Sig., Syst. and Comp., November 1998; “Low Complexity Group Detectors for Multirate Transmission in TD-CDMA 3G Systems”, by P. Castoldi and H. Kobayashi, Wireless Broadband Symposium (Globecom 2000) San Francisco, Nov. 27, 2000; “Comparison of Maximum Likelihood-based Detection of Two Multi-rate Access Schemes for CDMA Signals”, by U. Mitra, IEEE Trans. on Commun, January 1999; “Interference considerations for the Time Division Duplex Mode of the UMTS Terrestrial Radio Access”, by H. Holma, S. Heikkinen, O.-A. Lehtinen and A. Toskala, Journal on Sel. Areas in Comm., vol.18, n. 8, August 2000, pp. 1386-1393, which are each incorporated herein by reference in their entireties.

[0006] Some algorithms have been designed especially for uplink signal detection. These algorithms are based on the zero forcing (ZF) and the minimum mean-square-error (MMSE) criteria as witnessed, e.g., by “Zero Forcing and Minimum Mean-Square-Error Equalization for Multiuser Detection in Code Division Multiple-Access Channels”, by A. Klein, G. Kaleh, and P. Baier, IEEE Trans. on Vehic. Technology, vol. 45, n. 2, May 1996, which is incorporated herein by reference in its entirety. Basically, these solutions are based on channel equalization followed by a code-matched filter, which permits multi-path diversity to be exploited for the radio channel.

[0007] The solutions indicated in the foregoing suffer to a lesser or greater extent from a number of drawbacks, e.g.:

[0008] a system model that assumes a fixed data rate or an equally fixed spreading factor;

[0009] implementation as a fixed block multi-user detection scheme (see, e.g., the paper by A. Klein et al. already cited in the foregoing or “Data Detection Algorithms especially designed for the downlink of CDMA Mobile Radio Receivers”, by A. Klein, Vehicular Technology Conference (VTC '97), Phoenix, Ariz., pp. 203-207, May 1997), which is incorporated herein by reference in its entirety, that is computationally prohibitive even for burst transmission with short data fields;

[0010] inter-cell interference, due to the neighboring cells, is not rejected and is only modeled as non-white gaussian noise;

[0011] generally, the multiple access interference (MAI) component for a mobile user equipment (UE) is not considered as structured: each mobile has only knowledge of its own signatures and has no information about interfering users in the same cell.

BRIEF SUMMARY OF THE INVENTION

[0012] An embodiment of the present invention provides a solution exempt from the drawbacks and disadvantages inherent in the prior art solutions considered in the foregoing.

[0013] In the case of detection of multi-rate transmission, data assigned to each mobile user are carried by a group of codes whose size varies from one to the totality of all active codes.

[0014] An embodiment of the invention provides a linear detector that combats intersymbol interference (ISI) by equalization and multiple access interference (MAI) by interference mitigation, using a sliding window formulation that is valid for both ZF and MMSE criteria. The intracell signal, in the downlink transmission, is modeled as related to a synchronous CDMA system where all codes experience the same propagation channel. Also, intercell signal can be described by the same structure as the intracell signal. In particular, every intracell component is given by the sum of synchronous CDMA signals but intercell signals are the sum of intracell components asynchronous to each other.

[0015] An embodiment of a receiver according to the invention relies on the fact that detection performed at a mobile station (MS) can always take advantage of explicit knowledge of all the intracell codes currently assigned to a base station (BS). Preferably, the codes destined to a specific MS are notified using a control channel as disclosed, e.g., in the 3rd Generation Partnership Project (3GPP) website, Radio Interface Technical Specifications, ftp://ftp.3gpp.org/Specs/2001-06/), which is incorporated herein by reference in its entirety, while those related to the other active users can be determined by processing the midamble of the packet. Hence, the observation model always includes a “structured” description of the intracell signals, while the intercell interference is treated according to different levels of signal description. Preferably, the direct intracell mitigation feature is always “set on”, whereas various options are made available depending on different needs for co-channel intercell interference suppression. When a soft handover procedure is active, all the parameters related to the neighboring cells are known to the MS; they can be used in order to represent a structured description of the intercell signals and to allow its direct mitigation. Moreover, the knowledge of information concerning the neighboring cells lets the MS to detect data sent by more than one base station (BS).

[0016] Preferably, the algorithm is implemented by using a bank of FIR filters and a symbol-by-symbol decision device.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

[0017] The invention will now be briefly described, by way of example only, with reference to the annexed figures of drawing, wherein:

[0018]FIG. 1 is a block diagram of a CDMA transmission system,

[0019]FIG. 2 shows a typical slot format for UTRA TDD consisting of two data symbol fields, a midamble and a guard period,

[0020]FIG. 3 shows an exemplary matrix structure for use in a low complexity detector according to the invention,

[0021]FIG. 4 shows a matrix product operation in a possible embodiment of the present invention,

[0022]FIG. 5 shows an extension of the product of FIG. 4,

[0023]FIG. 6 shows the upper triangular part of a matrix generated by the operation of FIG. 4,

[0024]FIG. 7 is a block diagram of a detector architecture, and

[0025]FIG. 8 shows the functional blocks of an estimator for possible use within the framework of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0026] Essentially, the invention extends the previous algorithms disclosed in the two last-cited papers as well as in “Equalizers for multiuser detection in code division multiple access mobile radio systems”, by A. Klein, G. Kaleh, and P. Baier, Vehicular Technology Conference (VTC '94) pp. 762-766, 1994; “Linear Unbiased Data Estimation in Mobile Radio Systems Applying CDMA”, by A. Klein, and P. Baier; IEEE Journal on Selected Areas in Communications, vol. 11, n. 7, September 1993; and “Linear Receivers for the DS-CDMA Downlink Exploiting Orthogonality of Spreading Sequences”, by I. Ghauri, and D. Slock, 32 ^(nd) Asilomar Conf. on Signal, Systems and Computers (Pacific Grove, Calif.), November 1998, which are incorporated herein by reference in their entireties.

[0027] In the following a user specific, orthogonal variable spreading factor (OVSF) spreading code followed by scrambling of the BS specific overlay sequence will be taken into account.

[0028] Firstly, a single cell scenario will be considered where J synchronous intracell codes are sent over a slowly varying multipath fading channel and additive white gaussian noise (AWGN) further corrupts the received signal.

[0029] In order to describe the multirate data streams the following parameters are considered:

[0030] J number of synchronous users in a cell;

[0031] Q_(j) spreading factor (SF) for j-th user;

[0032] N_(J) data sequence length: it depends on the spreading factor Q_(j);

[0033] (w_(j)(0),w_(j)(1),w_(j)(2), . . . ,w_(j)(Q_(j)−1)) OVSF channelization code for the j-th user;

[0034] y^(N)(t) data symbol sequence that is spread by the j-th code (j=1, 2, . . . , J); the chip interval T_(C) is constant in a TDD system but the symbol interval T_(j)=Q_(j)·T_(C) may be different for different data streams; ${{z\left( {n\quad;i} \right)\quad n} = 0},1,\ldots \quad,{{\frac{Q_{\max}}{Q_{j}} - 1};{i = 0}},1,\ldots \quad,{Q_{j} - 1}$

[0035] scrambling code for j-th user. The index ‘n’ ticks with the symbol interval and ‘i’ runs on the chip interval; this scrambling window has a length of Q_(max) chips (maximum SF which is equal to 16) and includes $\frac{Q_{\max}}{Q_{j}}$

[0036]  symbols; ${c_{j}\left( {n\quad;k} \right)} \equiv {{w_{j}(k)} \cdot {z\left( {{{n - 1}}_{\frac{Q_{\max}}{Q_{j}}};k} \right)}}$ n = 1, …  , N_(j); k = 0, 1, …  , Q_(j) − 1

[0037] spreading sequence for for n-th symbol;

[0038] p(t) transmitter filter impulse response;

[0039] q(t) receiver filter impulse response (low pass filter);

[0040] β oversampling factor; and $W = \frac{\beta}{T_{C}}$

[0041] oversampling rate.

[0042] The baseband transmission system for a single cell is shown in FIG. 1. In FIG. 1, reference 10 designates the various states c₁(n; k) . . . c_(j)(n; k) effecting spreading of the input data symbol sequences {a₁(n)} . . . {a_(j)(n)}. Reference 20 collectively designates the transmitter filters having identical impulse responses p(t).

[0043] Block 30 represent the summing effect derived by the simultaneous or quasi-simultaneous transmission over a transmission channel 40 having an impulse response h(t) and affected by additive noise (AWGN) represented by v(t).

[0044] The resulting received signal y(t) is detected by respective detectors (collectively designated 50) to generate respective detected signals y₁[i] . . . y_(j)[i].

[0045] Assuming linear modulation, the time continuous complex baseband signal after the low pass filter can be expressed as: $\begin{matrix} {{y(t)} = {{\sum\limits_{j = 1}^{J}{\sum\limits_{n = 1}^{N_{j}}{{a_{j}(n)}{\sum\limits_{i = 0}^{Q_{j} - 1}{{c_{j}(i)}{f\left( {t - {\left( {n - 1} \right)T_{j}} - {iT}_{C}} \right)}}}}}} + {\nu (t)}}} & {{Eq}\quad 1} \end{matrix}$

[0046] where:

[0047] f(t) is the overall channel impulse response given by the convolution of the pulse chip-shaping p(t) (common to all users) with the multipath channel impulse response h(t); ${h(t)} = {\sum\limits_{l}{h_{l}\delta \quad \left( {t - \tau_{l}} \right)}}$

[0048] represents the multipath channel impulse response; and

[0049] υ(t) is the result of the low pass filtering of v(t) by q(t).

[0050] Because of time spread in the shaping filter and in the channel delay, the f(t) response exhibits a delay spread equal to P chip intervals (P>1).

[0051] A chip representation of the signal y(t) can be made by defining the chip sequence {b_(j)(k)} which corresponds to the spreading of the symbol {a_(j)(n)}: $\begin{matrix} {{{{b_{j}(k)} \equiv {{{a_{j}(n)} \cdot {c_{j}\left( {{k - 1}}_{Q_{j}} \right)}}\quad k}} = 1},2,\ldots \quad,{{{N_{j} \cdot Q_{j}}\quad n} = \left\lceil \frac{k}{Q_{j}} \right\rceil}} & {{Eq}\quad 2} \end{matrix}$

[0052] where ‘k’ runs over the chips, ‘n’ follows the N_(j) symbol period and N_(j)·Q_(j) is the chip length of the sequence transmitted by j-th user.

[0053] The received signal y(t) is sampled at rate W and taking into account Eq, its baseband equivalent signal of the single cell transmission system becomes: $\begin{matrix} {{y_{m}(t)} = {{\sum\limits_{j = 1}^{J}{\sum\limits_{k = 1}^{P - 1}{{b_{j}\left( {i - k} \right)}{f_{m}\left( {k + 1} \right)}}}} + {\quad{{{{\upsilon_{m}(t)}m} = 1},2,\ldots \quad,{{\beta \quad i} = 1},2,\ldots \quad,{N_{j} \cdot Q_{j}}}}}} & {{Eq}\quad 3} \end{matrix}$

[0054] In the following two structures will be proposed related to a single and a multiple cell approach respectively.

[0055] Single-Cell Discrete-Time Model

[0056] A matrix representation of Eq 3 is considered over βN observations y_(m)(t): the observing window length is N·T_(C) chips starting from the i-th chip and spanning over N chips backwards

y ^(N)(t)=[y ₁(i−N+1), . . . ,y _(β)(i−N+1), . . . ,y ₁(i), . . . ,y _(β)(i)]^(T)  Eq 4

[0057] where y₁(i), . . . ,y_(β)(i) represent β subchips for the current i-th chip and y₁(i−N+1), . . . ,y_(β)(i−N+1) correspond to N chips (or βN sub-samples) before the current i-th chip. y^(N)(t) can be expressed in terms of channel samples, spreading codes and data by defining a β·N×P+N−1 dimensional matrix. $\begin{matrix} {F^{(N)} = \begin{bmatrix} {f\left( {P - 1} \right)} & \ldots & {f(0)} & \ldots & \quad & \quad & 0 \\ \quad & {f\left( {P - 1} \right)} & \ldots & {f(0)} & \ldots & \quad & 0 \\ \quad & \quad & \quad & \ldots & \quad & \quad & 0 \\ 0 & \quad & \quad & {f\left( {P - 1} \right)} & {f\left( {P - 2} \right)} & \ldots & {f(0)} \end{bmatrix}} & {{Eq}\quad 5} \end{matrix}$

[0058] where

f(k)=[f(k+1), . . . ,f _(β)(k+1)]^(T) k=0,1, . . . ,P−1   Eq6

[0059] The code sequence can be also represented in matrix notation introducing a symbol rate ticking index $n = {\left\lceil \frac{i}{Q_{j}} \right\rceil:}$

$\begin{matrix} {{C_{j}^{(N)}(i)} \equiv \begin{bmatrix} {c_{j}\left( \left. {{n - n_{j} + 1};} \middle| {i - N - P + 1} \right|_{Q_{j}} \right)} & \quad & \quad & \quad & 0 \\ \cdots & \quad & \quad & \quad & \quad \\ {c_{j}\left( {{n - n_{j} + 1};{Q_{j} - 1}} \right)} & \quad & \quad & \quad & \quad \\ 0 & \cdots & \quad & \quad & \quad \\ \quad & \quad & {c_{j}\left( {{n - l_{j} + 1};0} \right)} & \quad & \quad \\ \quad & \quad & \cdots & \quad & \quad \\ \quad & \quad & {c_{j}\left( \left. {{n - l_{j} + 1};} \middle| {i - P} \right|_{Q_{j}} \right)} & \quad & \quad \\ \quad & \quad & \cdots & \quad & \quad \\ \quad & \quad & {c_{j}\left( {{n - l_{j} + 1};{Q_{j} - 1}} \right)} & \quad & \quad \\ \quad & \quad & \quad & \cdots & {c_{j}\left( {n;0} \right)} \\ \quad & \quad & \quad & \quad & \cdots \\ 0 & \quad & \quad & \quad & {c_{j}\left( \left. {n;} \middle| {i - 1} \right|_{Q_{j}} \right)} \end{bmatrix}} & {{Eq}\quad 7} \\ \quad & \quad \end{matrix}$

[0060] where:

[0061] <(P+N−1)×n_(j)> represents the dimension of C_(j) ^((N))(i);

[0062] P+N−1 is the number of observed chips including the delay spread; and $n_{j} = \left\lceil \frac{P + N + Q_{j} - 2}{Q_{j}} \right\rceil$

[0063] denotes the number of symbols involved in the observation window of N+P−1 chips length: specifically, it is the number of potential decision variables for all symbols embraced in the processing window for the specific user j-th; and

[0064] I_(j) determines the maximum number of symbols introducing ISI in the scalar observation; it depends on SF of each user.

[0065] Finally, defining a matrix representation for all active users: $\begin{matrix} {{{{C^{(N)}(i)} = \left\lbrack {{C_{1}^{(N)}(i)},{C_{2}^{(N)}(i)},\ldots \quad,{C_{J}^{(N)}(i)},} \right\rbrack^{T}};}{{\langle{C^{(N)}(i)}\rangle} = {\langle{\left( {N + P - 1} \right) \times {\sum\limits_{j = 1}^{J}\quad n_{j}}}\rangle}}} & {{Eq}\quad 8} \\ {{a^{(N)}(i)} = \left\lbrack {{a_{1}^{{(N)}^{T}}(i)},{a_{2}^{{(N)}^{\prime}}(i)},\ldots \quad,{a_{J}^{{(N)}^{T}}(i)}} \right\rbrack^{T}} & {{Eq}\quad 9} \\ {{v^{(N)}(i)} = \left\lbrack {{v_{1}^{(N)}\left( {i - N + 1} \right)},\ldots \quad,{v_{\beta}^{(N)}\left( {i - N + 1} \right)},\ldots \quad,{v_{1}^{(N)}(i)},\ldots \quad,{v_{\beta}^{(N)}(i)}} \right\rbrack^{T}} & {{Eq}\quad 10} \end{matrix}$

[0066] the following relationship is obtained:

y ^((N))(i)=F ^((N)) ·C ^((N))(i)·a ^((N))(i)+υ^((N))(i)  Eq 11

[0067] By defining

b ^((N))(i)=C ^((N))(i)·a ^((N))(i)  Eq 12

[0068] $\begin{matrix} {{{G^{(N)}(i)} = {F^{(N)} \cdot {C^{(N)}(i)}}};{{\langle{G^{(N)}(i)}\rangle} = {\langle{\left( {\chi \cdot N} \right) \times {\sum\limits_{j = 1}^{J}\quad n_{j}}}\rangle}}} & {{Eq}\quad 13} \end{matrix}$

[0069] the following expression can be derived: $\begin{matrix} \begin{matrix} {{y^{(N)}(i)} = {{F^{(N)} \cdot {b^{(N)}(i)}} + {v^{(N)}(i)}}} \\ {= {{G^{(N)} \cdot {a^{(N)}(i)}} + {v^{(N)}(i)}}} \end{matrix} & {{Eq}\quad 14} \end{matrix}$

[0070] Multiple-Cell Discrete-Time Model

[0071] The intercell signal model has the following basic features:

[0072] each intercell signal can be modeled as an intracell one: all active users belonging to a common cell are synchronous, and

[0073] each intercell signal is asynchronous with respect to the others, but it can be regarded as chip synchronous.

[0074] In this scenario a different noise term can be defined due to interference of neighboring transmitting cell:

n ^((N))(i)=υ^((N))(i)+z ^((N))(i)  Eq 15

[0075] which includes thermal noise υ^((N))(i) and intercell interference z^((N))(i).

[0076] The observation vector can be extended in the following equation: $\begin{matrix} \begin{matrix} {{y^{(N)}(i)} = {{F^{(N)} \cdot {b^{(N)}(i)}} + {n^{(N)}(i)}}} \\ {= {{G^{(N)} \cdot {a^{(N)}(i)}} + {n^{(N)}(i)}}} \end{matrix} & {{Eq}\quad 16} \end{matrix}$

[0077] Two different approaches can be considered depending on the scenario and the intercell interference information available, i.e., an unstructured model or a structured model.

[0078] In the case of an unstructured model no information is available about neighboring cells so only a statistical description of z^((N))(i), as gaussian colored noise, is possible. The global noise term will be gaussian with correlation matrix

R _(n)(i)=σ_(v) ² ·I+R _(z)(i)  Eq 17

[0079] A structured model is useful when knowledge is available on those interference parameters that allow for a fully structured interference mitigation. Recalling that intercell interference consists of the superposition of a few asynchronous, but block-synchronous, CDMA signals with the same structure of the useful intracell signal, a “finer” model can be derived for the time-discrete received signal: $\begin{matrix} {{y^{(N)}(i)} = {{F_{d}^{(N)} \cdot {b_{d}^{(N)}(i)}} + {\sum\limits_{\lambda = 1}^{L}\quad {F_{\lambda}^{(N)} \cdot {b_{\lambda}^{(N)}(i)}}} + {v^{(N)}(i)}}} & {{Eq}\quad 18} \end{matrix}$

[0080] where subscript ‘d’ identifies the desired intracell signal while the summation over ‘λ’ accounts for the L intercell signals. From this observation model the second term can be associated to the z^((N))(i) component: $\begin{matrix} {{z^{(N)}(i)} = {\sum\limits_{\lambda = 1}^{L}\quad {F_{\lambda}^{(N)} \cdot {b_{\lambda}^{(N)}(i)}}}} & {{Eq}\quad 19} \end{matrix}$

[0081] which in this case is not considered as Gaussian colored noise but is completely known by the user.

[0082] A proposed UTRA TDD compliant slot format is shown in FIG. 2.

[0083] The format in question consists of two data symbol fields, a midamble and a guard period (GP).

[0084] Solution such as zero forcing (ZF) or minimum mean square error (MMSE) as disclosed in the article by A. Klein et al. cited in the introductory portion of the description are block detectors. Finite complexity solutions of these detectors are necessary in order to employ them in practical implementation.

[0085] Here a processing window definition and a sliding window formulation of the above mentioned detectors are defined in order to employ them for a practical implementation on receivers. The following derivation is referred to the linear detector MMSE of A. Klein et al. in which the Wiener estimator is

W _(MI) =[I+(R _(b) ·F ^(H) ·R _(n) ⁻¹ ·F)⁻¹]⁻¹  Eq 20

[0086] The width of the processing window must be large enough to ensure proper interference mitigation for the data stream with the largest spreading factor Q currently used by the system (which may be smaller than Q_(max)). This design strategy yields a low rate linear detector because the detection step follows the symbol rate of the slowest user. In this case a symbol-by-symbol detection strategy is used in which a processing window of size Ñ=Q+P−1 chip intervals is selected.

[0087] This choice is possible because the vector y^((N))(i) can be assumed with stationary statistics if the number of chip present in a data field is N≧Q. All the observation samples that carry energy of a symbol spread with the largest spreading factor, are collected and used for the detection.

[0088] In the following a sliding window algorithm is described for the first data block of FIG. 2 and the algorithm proceeds backward starting from the symbols closest to the midamble.

[0089] The parameter $K = \frac{N}{Q}$

[0090] is defined in order to represent the number of symbols in the associated data stream with the largest spreading factor, while also defining:

{tilde over (y)}(k)=y ^((Q+P−1))(kQ+P−1) k=1,2, . . . ,K  Eq 21

ã(k)=a ^((Q+P−1))(kQ+P−1) k=1,2, . . . ,K  Eq 22

[0091] By further defining the matrices:

{tilde over (G)}=G ^((Q+P−1))(kQ+P−1)  Eq 23

{tilde over (R)} _(a) =R _(a) ^((Q+P−1))(kQ+P−1)  Eq 24

{tilde over (R)} _(n) =R _(n) ^((Q+P−1))(kQ+P−1)  Eq 25

{tilde over (W)} _(MI) =W _(MI) ^((Q+P−1))(kQ+P−1)  Eq 26

[0092] the linear transformation becomes: $\begin{matrix} \begin{matrix} {\overset{\sim}{T} = {\left( {{{\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1} \cdot \overset{\sim}{G}} + {\overset{\sim}{R}}_{a}^{- 1}} \right)^{- 1} \cdot {\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1}}} \\ {= {{\overset{\sim}{W}}_{MI} \cdot \left( {{\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1} \cdot \overset{\sim}{G}} \right)^{- 1} \cdot {\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1}}} \end{matrix} & {{Eq}\quad 27} \end{matrix}$

[0093] and the decision vector after detection is:

{tilde over (x)} _(a)(k)={tilde over (T)}·{tilde over (y)}(k)  Eq 28

[0094] Significantly, while the argument of y(·) runs over the chip interval, that of {tilde over (y)}(·) runs over the detection step (at the symbol rate of the slowest user).

[0095] Vector {tilde over (x)}_(a)(k) takes into account symbols for all the active users, so its dimension is given by $\begin{matrix} {{\langle{\overset{\sim}{x}}_{a}\rangle} = {{{\langle{n_{t} \times 1}\rangle}\quad {with}\quad n_{t}} = {\sum\limits_{j = 1}^{J}n_{j}}}} & {{Eq}\quad 29} \end{matrix}$

[0096] The total number of potential decision variables for all symbols included in an observation window {tilde over (y)}(k) is n_(t).

[0097] For each user, a number of decision variables (of length $\left( {{of}\quad {length}\quad \frac{Q}{Q_{j}}} \right)$

[0098] ) smaller than n_(j) could yield an optimal decision for the corresponding symbols embraced in {tilde over (y)}(k). In this way only sub-vectors of {tilde over (x)}_(a)(k) are computed to derive symbols estimated for each user.

[0099] A sliding window detector (SWD) of the kind now proposed determines a considerable complexity reduction with respect to common MMSE schemes applied to the whole data stream.

[0100] The practical case will first be considered of an UTRA-TDD downlink where only two possible spreading factors are foreseen, Q_(j)=1 and Q_(j)=Q_(max)=16.

[0101] While a more detailed and particular description will be provided in the following, it will be appreciated that a SWD embodiment still requires a computational power hardly acceptable for the implementation on a mobile terminal where size and power consumption are the main constraints to be taken into account to provide successful product for the consumer market. For instance, by considering a possible UTRA-TDD case with P=64 and J=16 and by assuming an oversampling factor β=2, a computational power in excess of 3000 GMAC/s is required. This figure is obtained by taking into account all possible simplifications derived by matrix Hermitian properties and by the fact that only a maximum of Q_(max) rows for the T matrix are useful for data detection.

[0102] For that reason, a reduced complexity version of the proposed linear detector can be derived that is suitable for implementation in a mobile terminal. The modified solution is obtained by considering a different processing window and by re-arranging all the required matrix calculations in a more regular structure.

[0103] The following two hypotheses of practical interest for the UTRA-TDD communication channel are assumed:

[0104] the channel can be regarded as constant for the whole burst duration and so the relevant F matrix in Eq 5 is also constant;

[0105] the global noise term can be regarded as AWGN and with constant power for the whole burst duration and so the relevant correlation matrix R_(n) in Eq 17 is constant and equal to R_(n)=σ_(n) ²·I.

[0106] The first difference with respect to the previous SWD solutions is that a fixed width of the processing window, equal to Ñ=Q_(max)+P−1 symbols, is considered. This window considers only the maximum spreading factor Q_(max) and not the largest Q currently used by the system.

[0107] In this way, the C matrix in Eq 8 is constant since a fixed length equal to Q_(max) chips characterizes scrambling codes. Moreover, by assuming uncorrelated and zero mean value QPSK symbols (i.e., {tilde over (R)}_(a) ⁻¹=I), the {tilde over (T)} matrix of Eq 27 results to be constant for the whole burst duration and becomes:

{tilde over (T)}=({tilde over (G)} ^(H) ·{tilde over (G)}+σ _(n) ² ·I)⁻¹ ·{tilde over (G)} ^(H)  Eq 30

[0108] Following this approach and by considering the same exemplary parameters indicated in the foregoing (i.e., P=64, J=16 and β=2), the overall complexity can be reduced more than 99% resulting in a final figure of about 26 GMAC/s.

[0109] Further reduction of the complexity, without any penalty in algorithm performance, can be achieved by re-arranging the original C matrix in Eq 8 as follows:

[0110] step (i):C matrix upper and lower row-extension in order to complete all the codes relevant to the symbols within the processing window; indeed some of them could have been truncated in the original definition Eq 8 depending on the considered value of P.

[0111] step (ii): C matrix extension by P−1 null rows to the upper and lower parts, in order to include all data relevant to the symbols within the processing window.

[0112] step (iii):C matrix column permutations to easy matrix processing by obtaining a more regular data structure.

[0113] It will be appreciated that (provided that the same permutations are applied to rows and columns of the R_(a) matrix) the algorithm is not affected at all by this operation since any permutation on the C matrix column merely corresponds to a permutation in the elements of the detected symbols vector {tilde over (x)}_(a).

[0114] After step (i) and (ii), the extended version C_(jext)^(N)

[0115] of the C_(j) ^(N) matrix in Eq 7 has a dimension equal to $\begin{matrix} {{\langle C_{jext}^{N}\rangle} = {\langle{\left\lbrack {{n_{j} \cdot Q_{\max}} + {2 \cdot \left( {P - 1} \right)}} \right\rbrack \times n_{j}}\rangle}} & {{Eq}\quad 31} \end{matrix}$

[0116] and the extended version C_(ext) of the C matrix in Eq 8 has a dimension

<C _(ext) >=<[n _(j) ·Q _(max)+2·(P−1)]×[n _(j) ·J]>  Eq 32

[0117] In this case the parameter n_(j) is constant because in downlink (DL) transmission all active users have the same spreading factor (Q=1 or Q=16)

[0118] As a consequence, also the F matrix (Eq 5) has to be extended accordingly. The resulting F_(ext) matrix has a dimension $\begin{matrix} {{n_{j} = {{\left\lceil \frac{Q_{\max} + {2P} - 2 + Q_{j}}{Q_{j}} \right\rceil \quad j} = 1}},2,\ldots,J} & {{Eq}\quad 33} \end{matrix}$

 <F _(ext) >=<[Q _(max) ·n _(j) +P−1)]·β×[n _(j) ·Q _(max)+2·(P−1)]>  Eq 34

[0119] Then, the G and T matrices have to be extended as well (G_(ext) and T_(ext)), while the dimension of the $\left( {{{\overset{\sim}{G}}_{ext}^{H} \cdot {\overset{\sim}{G}}_{ext}} + {\sigma_{n}^{2} \cdot I}} \right)$

[0120] matrix to be inverted is not changed compared to the one in Eq 30.

[0121] This general approach will be detailed hereafter for the practical case of the UTRA-TDD downlink where only two possible spreading factors are foreseen, Q_(j)=1 and Q_(j)=Q_(max)=16.

[0122] If one refers to the more complex case of Q_(j)=Q_(max)=16 where it is possible to have J≦Q_(max) active codes and the number of symbols n_(j) in the processing window is constant. According to step (iii), a permutation of the columns of the row-extended C_(ext) matrix is effected in order to obtain n_(j) data blocks each block being relevant to the symbols transmitted at the same time instant. By defining C_(j(1)) the i-th column of the C_(jext)^(N)

[0123] matrix, the resulting of matrix permutation after step (iii) is:

C_(per)=[C₁₍₁₎,C₂₍₁₎, . . . C_(J(1)),C₁₍₂₎,C₂₍₂₎, . . . C_(J(2)), . . . ,C_(1(n) _(j) ₎,C_(2(n) _(j) ₎, . . . C_(J(n) _(j) ₎]  Eq.35

[0124] Significantly, C_(per) is a block matrix where all the not-null blocks are identical. This basic block, whose dimension is <Q_(max)×J> is denoted C_(red). The proposed solution does not require the direct use of C_(per) matrix. As it will be detailed hereafter the processing is based only on its basic block C_(red).

[0125] The F_(red) matrix defined as in Eq 5 is then introduced with dimension:

<F _(red) >=<[Q _(max) +P−1)]·β×[Q _(max)+2·(P−1)]>=<β·N×[N+P−1]>  Eq 36

[0126] Starting from the C_(red) and F_(red), a matrix G_(red), whose dimension is <β·N×J>, is obtained as follows: $\begin{matrix} {{G_{red} \equiv {{F_{red} \cdot \begin{pmatrix} 0 \\ C_{red} \\ 0 \end{pmatrix}}\begin{matrix} {\left. \rightarrow{P - 1} \right.\quad} \\ {\left. \rightarrow Q_{\max} \right.} \\ {\left. \rightarrow{P - 1} \right.} \end{matrix}\begin{matrix} {rows} \\ {rows} \\ {rows} \end{matrix}\quad {\langle G_{red}\rangle}}} = {\langle{\left( {B \cdot N} \right) \times J}\rangle}} & {{Eq}\quad 37} \end{matrix}$

[0127] The elements of the matrix G_(red) can be efficiently obtained by direct convolution (by means of finite impulse response (FIR) and shift registers) of the rows of the matrix [f(0), . . . , f(P−2), f(P−1)] and the columns of the C_(red) matrix, where f(k) is defined in Eq 6.

[0128] For the sake of clarity, the G_(ext) matrix (see FIG. 3) can be introduced, based on the above-defined G_(red), whose dimension is <[Q_(max)·n_(j)+P−1)]·β×J·n_(j)) .

[0129] As it will be detailed hereafter, the proposed algorithm does not require the direct use of such G_(ext) matrix because the G_(ext)^(H)G_(ext)

[0130] foreseen computation can be carried out by means of the following two steps:

[0131] evaluate the upper triangular part of G_(red)^(H)G_(red)

[0132]  matrix;

[0133] evaluate the (n_(j)−1)/2 matrices such as L_(i) ^(H)U_(i) with i=0,1, . . . ,(n_(j)−1)/2−1, where L_(i) and U_(i) are derived from G_(red) as shown in FIG. 5 for the case i=0 and for the general i-th case. It is worth noting that for the case P=64 it results n_(j)=9 and so 4 matrices L_(i) ^(H)U_(i), each one of <J×J> dimension, have to be evaluated.

[0134] This is shown in greater detail in FIGS. 4 and 5. Specifically, FIG. 4 shows the G_(ext)^(H)G_(ext)

[0135] matrix product, while FIG. 5 shows the L_(i) and U_(i) matrices for the case i=0 and for the general i-th case. The dimensions of L_(i) and U_(i) are <β·(P−1−i·Q_(max))×J> for i<(n_(j)−1)/2.

[0136] Matrix G_(ext) ^(H)G_(ext) is composed by n_(j)×n_(j) blocks of dimension <J×J> each. Its upper triangular part is defined as shown in FIG. 6 where index m=(n_(j)−1)/2−1:

[0137] Finally, it can be demonstrated that the G_(ext)^(H)G_(ext)

[0138] matrix is Hermitian. This property can be exploited in order to reduce the computational load.

[0139] The main advantages of the operations (i), (ii) and (iii) above as applied to the original C matrix can be summarized as follows:

[0140] all the operations have to be performed in a very regular structure without any redundancy as it is in the original case. This allows also the use of a very simple control unit to manage all the data processing;

[0141] the resulting G_(ext)^(H)G_(ext)

[0142]  matrix is appreciably more well-conditioned from the numerical viewpoint than the original one. Indeed, this matrix results to be increasingly diagonally dominant as the channel is increasingly characterized by a dominant path. This matrix characteristic is due to the properties of the spreading codes (channelization plus scrambling codes) and allows the use of a more optimized algorithm for the inversion of matrix W = (G_(ext)^(H)G_(ext) + σ²l)

[0143]  and so a considerable reduction in the overall computational complexity without any performance penalty.

[0144] A possible efficient implementation can be based on a hardware/software architecture where a dedicated hardware engine is used for those tasks that are more computational intensive (such as the derivation of L_(i) ^(H)U_(i) sub-matrixes and the inversion of the matrix W), while predominantly control-oriented operations are performed via software on a microprocessor/microcontroller.

[0145] After this simplification we can work on matrix of reduced dimension and it is also easier to resolve Eq 30 and compute: $\begin{matrix} {{\overset{\sim}{T}}_{red} = {\left( {{{\overset{\sim}{G}}_{red}^{H} \cdot {\overset{\sim}{G}}_{red}^{H}} + {\sigma_{n}^{2} \cdot I}} \right)^{- 1} \cdot {\overset{\sim}{G}}_{red}^{H}}} & {{Eq}\quad 30} \end{matrix}$

[0146] Firstly, direct calculation of the ${\overset{\sim}{G}}_{red}^{H} \cdot {\overset{\sim}{y}(i)}$

[0147] product is carried out: $\begin{matrix} {{{d^{(j)}\left( {{i \cdot J} + \frac{n_{t} - J}{2}} \right)} = {G_{red}^{H} \cdot {y\left( {i + 1} \right)}}}{{{{for}\quad i} = 0},1,\ldots,{N_{j} - 1}}{{d^{(\frac{n_{t} - J}{2})}(0)} = {{d^{(\frac{n_{t} - J}{2})}\left( {{N_{j} \cdot J} + \frac{n_{t} - J}{2}} \right)} = 0}}} & {{Eq}\quad 38} \end{matrix}$

[0148] where the factor y(i) is a defined in Eq, N_(j) is the same for all the active codes, n_(t)=n_(j)·J and the vectors ${d^{(J)}\left( {{i \cdot J} + \frac{n_{t} - J}{2}} \right)},$

[0149] each of dimension J, can be evaluated directly from the G_(red) ^(H) matrix as shown in Eq 38 and then stored in a proper buffer memory B=d^((J*Nj+nt−J))(0) of N_(j)·J+n_(t)−J complex elements.

[0150] The notation d^((l))(p), with l and p positive indices, means a vector of length l obtained taking l elements from the buffer memory B starting from the p-th element.

[0151] The term $d^{(J)}\left( {{i \cdot J} + \frac{n_{t} - J}{2}} \right)$

[0152] can be efficiently evaluated by means of proper FIR implementing the correlation between the received samples y(i) and the rows of the G_(red)^(H)

[0153] matrix.

[0154] The last step towards data detection can be done through the following operation:

x(i)=(W ⁻¹)_(red) ·d ^((n) ^(_(t)) ⁾(i·J) for i=0,1, . . . ,N_(j)−1  Eq 39

[0155] where the (W⁻¹)_(red) matrix is derived by the J central rows of the W⁻¹ matrix.

[0156] It will be appreciated that the null elements added in the upper and lower parts of the buffer memory B, see Eq 38, can be dispensed with by adopting a slightly more complex control logic. Indeed, for data detection, see Eq 39, only the useful columns of the (W⁻¹ )_(red) matrix can be used for the first (n_(j)−1)/2 steps and the last (n_(j)−1)/2 steps. Also this operation can efficiently be implemented by means of a FIR.

[0157] Following this approach and by considering the same example case as above (i.e., P=64, J=16 and β=2) the overall complexity can be further reduced by more than 73% resulting in a final figure of about 7 GMAC/s.

[0158] As already mentioned, when Q_(j)=1 we have a QPSK transmission with the scrambling code multiplying the symbols of one single user. All the considerations done for the Q_(j)=Q_(max)=16 can be re-used. In particular we still refer to a fixed width processing window can be referred to that amounts to N=Q_(max)+P−1 symbols and this way at each sliding window step 16 symbols can be estimated.

[0159] The basic idea in order to re-use the same implementation as for the Q_(j)=Q_(max)=16 case, is to consider to have J=16 active codes with spreading factor Q=Q_(max) and all the variables J dependent of the previous case can still be used. Moreover, the columns of a diagonal matrix C_(red) <16×16> whose diagonal elements are the chips of the scrambling code are considered as orthogonal codes (different from the spreading ones).

[0160] By exploiting the actual characteristics of the case Q_(j)=1 further reduction can be obtained in terms of computational complexity and therefore power consumption. For instance, instead of the G_(ext)^(H)G_(ext)

[0161] it is possible to consider its central sub-matrix with dimension <N+P−1×N+P−1> and use this for subsequent algorithm operations by paying attention to the re-definition of n_(t)=N+P−1.

[0162] Basically the first steps for system implementation of the solution described in the foregoing are as follows:

[0163] I. Storing the desired slot (memory requirement: (2560-GP)*Num_bit*β, (with GP=96 or 192);

[0164] II. Midamble extraction and its processing:

[0165] user parameters definition (channelization code, SF, etc . . . );

[0166] estimates for all the other active users (number of active users in the slot and their parameters, as channelization codes etc . . . );

[0167] channel estimation (delay spread=P, definition for sliding window setting, matrix F calculation, etc . . . ):

[0168] i) single cell scenario: only one matrix must be evaluated.

[0169] ii) multiple cell scenario (soft-handover): several matrices must be evaluated to obtain the T matrix for the detection algorithm;

[0170] evaluation of the T matrix based on: F matrix, active channelization code set and spreading code(s);

[0171] T matrix storage (memory requirement: depend on the following parameters: active users, cell scenario, P);

[0172] III. Processing unit setting based on the parameters estimated on the midamble;

[0173] IV. Demodulation of the first data field (two possible choices: starting from the first chip of the slot or from the midamble); and

[0174] V. Demodulation of the second data field.

[0175] The estimates for all the other active users requires correlation between the received midamble and the entire active midamble set.

[0176] An exemplary architecture corresponding to the foregoing is shown in FIG. 7, where reference 100 designates a memory buffer adapted to separate the midamble from the data fields in the received slot.

[0177] Reference 102 designates a block acting both as a receiver parameter estimator and a channel estimator.

[0178] Essentially, block 102 derives from the midamble:

[0179] the user parameters (delay spread P, channelization code, etc. . . . )—line 1021;

[0180] the interference parameters—line 1022; and

[0181] the T matrix—line 1023.

[0182] Reference 104 finally designates a processing unit configured to generate the de-spread data based on the data fields from buffer 100 and the parameters received from block 102 over lines 1021, 1022 and 1023.

[0183] The functional modules/blocks comprising estimator 102 are shown in greater detail in FIG. 8.

[0184] Estimator 102 has the role of estimating several parameters for the correct detection. It uses the knowledge of the user midamble to estimate the channel impairments (i.e., performing the channel estimation), modelled as channel coefficient in the F matrix and delay spread P (this function is implemented in a functional block called “channel estimator” 106).

[0185] Simultaneously, from the available midambles in the current slot for the serving-cell (and for some neighboring cells if the respective information is available), the system determines the active interfering users and their parameters useful for the detection algorithm (this function is implemented in a block called “midamble detector” 108).

[0186] The channel estimator function can be implemented as a correlator in which some shifted versions of the known midamble are compared with the received midamble obtaining the channel coefficients. The delay spread P is evaluated as the maximum delay for which the correlator output is above a threshold (the threshold could be related to a noise measure).

[0187] The midamble detector 108 correlates the received midamble with all those available for the current slot. In fact, if there are other users in the cell, their midambles are sent in parallel with the midamble of the desired user. The correlation value will be above a threshold only if one of these midamble is present. The threshold can be set using the correlator output value for the desired user.

[0188] The midambles can be generated by a block 110. This may be comprised of a look up table where all the possible midambles used in the TDD systems are stored. Alternatively, it may be a real midamble generator.

[0189] If a generator is used, the midamble seeds only have to be stored where the cell specific midambles may be generated, e.g., by using the formula provided in “Physical Channel and Mapping of Transport Channel onto Physical Channels (TDD)”; 3GPP TS 25.221; annex A.1 and A.2, which is incorporated herein by reference in its entirety.

[0190] Processing unit 104 loads a certain number of samples (observation window) from the memory buffer 100 and performs the detection algorithm computing the T matrix which provides a certain number of symbols for the desired user. This number depends on the delay spread and the maximum spreading factor used in the observed slot.

[0191] This processing unit can be implemented in hardware as a re-configurable FIR filters bank, where the filters coefficients are the elements of the matrix T.

[0192] The matrix T can be evaluated both in HW or in SW, depending on whether it has to be upgraded between two observation windows, of course evaluation of the matrix T requires an efficient algorithm for matrix inversion.

[0193] The invention permits, e.g., implementation of a linear receiver scheme for 3G TD-CDMA radio systems for use in downlink detection. The receiver mitigates both ISI and MAI, using the ZF and MMSE criterion.

[0194] A relevant sliding window formulation is provided to approach both ZF and MMSE algorithms. The sliding window is synchronized with the symbol rate of the slowest data stream.

[0195] The system model assumes a variable data rate, which means that all the active users are available to transmit with different spreading factors.

[0196] The sliding window formulation is based on variable length blocks, thus avoiding fixed block data stream, as in conventional multi-user detection. A structured model of intercell interference is preferably considered, where knowledge of all interfering users is assumed.

[0197] It will be appreciated by a person skilled in the art that other variations and/or modifications may be made to the present invention as shown in the specific embodiments without departing from the spirit or scope of the invention as broadly described. The present embodiments are, therefore, to be considered in all respects to be illustrative and not restrictive.

[0198] All of the above U.S. patents, U.S. patent application publications, U.S. patent applications, foreign patents, foreign patent applications and non-patent publications referred to in this specification and/or listed in the Application Data Sheet, are incorporated herein by reference, in their entirety. 

We claim:
 1. A method of receiving digital signals exposed to intersymbol interference as well as multiple access interference, the method comprising: linearly detecting said signals by combating said intersymbol interference by equalizing said received digital signals; and mitigating said multiple access interference by detecting said digital signals by means of a sliding window detection.
 2. The method of claim 1, including the step of receiving said digital signals as data blocks, partitioning each of said data blocks into a plurality of smaller portions and detecting said digital signals by processing said smaller portions thereby avoiding to process each data block as a whole.
 3. The method of claim 1, wherein said linear detection involves applying to said digital signals one of a zero forcing detection scheme and a minimum mean square error detection scheme.
 4. The method of claim 1, wherein said digital signals are digital signals subjected to spreading by means of spreading factors, said spreading factors including a maximum spreading factor, wherein said sliding window has a width determined by said maximum spreading factor.
 5. The method of claim 4, wherein said sliding window has a fixed width given by Q_(max)+P−1, where Q_(max) represents said maximum spreading factor and P represents the corresponding delay spread.
 6. A method of transmitting signals in a code division multiple access system, wherein said signals are digital signals exposed to intersymbol interference as well as multiple access interference, the method comprising arranging said signals in blocks including first and second data symbol blocks and a midamble therebetween.
 7. A method of receiving digital signals exposed to intersymbol interference as well as multiple access interference, the method comprising: linearly detecting said signals by combating said intersymbol interference by equalizing said received digital signals, wherein said signals are digital signals arranged in blocks including first and second data symbol blocks and a midamble therebetween; and mitigating said multiple access interference by detecting said digital signals by means of a sliding window detection.
 8. The method of claim 7, wherein said linear detection involves applying to said digital signals a zero forcing detection scheme.
 9. The method of claim 7, wherein said linear detection involves applying to said digital signals a minimum mean square error detection scheme.
 10. The method of claim 7, wherein said digital signals are digital signals subjected to spreading by means of spreading factors, said spreading factors including a maximum spreading factor, wherein said sliding window has a width determined by said maximum spreading factor.
 11. The method of claim 10, wherein said sliding window has a fixed width given by Q_(max)+P−1, where Q_(max) represents said maximum spreading factor and P represents the corresponding delay spread.
 12. A method of receiving digital signals exposed to intersymbol interference as well as multiple access interference in a multiuser scenario including other active users, wherein said signals are digital signals subject to spreading by means of spreading factors and arranged in blocks including first and second data fields and a midamble therebetween, the method including the steps of: defining and storing a desired signal slot; extracting said midamble from the signal received and deriving therefrom at least one of a user parameters definition such as a channelization code and a spreading factor as well as estimates for all the other active users such as the number of active users in said slot and respective user parameters therefor; performing channel estimation by obtaining a detection matrix; demodulating said first data field; and demodulating said second data field.
 13. The method of claim 12, wherein deriving said estimates for all the other active users such as the number of active users in said slot and respective user parameters therefor involves correlating said midamble with an entire set of midambles used by said other active users.
 14. The method of claim 12, wherein said first data field is demodulated starting from the first chip of the slot.
 15. The method of claim 12, wherein a single said detection matrix is obtained.
 16. The method of claim 12, wherein a plurality of said detection matrixes are obtained.
 17. The method of claim 12, wherein said detection matrix is computed on the basis of a matrix representative of the channel on which said signals are transmitted and the spreading codes associated therewith.
 18. The method of claim 12, wherein said at least one detection matrix is defined as: {tilde over (x)} _(a)(k)={tilde over (T)}·{tilde over (y)}(k) where: {tilde over (y)}(k)=y ^((Q+P−1))(kQ+P−1) k=1,2, . . . ,Kã(k)=a ^((Q+P−1))(kQ+P−1) k=1,2, . . . ,K and: {tilde over (G)}=G ^((Q+P−1))(kQ+P−1){tilde over (R)} _(a) =R _(a) ^((Q+P−1))(kQ+P−1){tilde over (R)} _(n) =R _(n) ^((Q+P−1))(kQ+P−1){tilde over (W)} _(MI) =W _(MI) ^((Q+P−1))(kQ+P−1) so the linear transformation becomes: $\overset{\sim}{T} = {{\left( {{{\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1} \cdot \overset{\sim}{G}} + {\overset{\sim}{R}}_{a}^{- 1}} \right)^{- 1} \cdot {\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1}} = {{\overset{\sim}{W}}_{MI} \cdot \left( {{\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1} \cdot \overset{\sim}{G}} \right)^{- 1} \cdot {\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1}}}$


19. A method of receiving digital signals exposed to intersymbol interference as well as multiple access interference, the method comprising detecting said signals by generating a detection matrix as a matrix structured to be decomposed into a plurality of identical submatrixes.
 20. A receiver for receiving digital signals exposed to intersymbol interference as well as multiple access interference, the receiver comprising a linear detector for detecting said signals, said detector including an equalizer for combating said intersymbol interference by equalizing said received digital signals as well as mitigating said multiple access interference by detecting said digital signals by means of a sliding window detection.
 21. The receiver of claim 20, wherein said linear detector is a zero forcing detector.
 22. The receiver of claim 20, wherein said linear detector is a minimum mean square error detector.
 23. The receiver of claim 20, for receiving digital signals subjected to spreading by means of spreading factors, said spreading factors including a maximum spreading factor, wherein said sliding window in said linear detector has a width determined by said maximum spreading factor.
 24. The receiver of claim 23, wherein said sliding window in said linear detector has a fixed width given by Q_(max)+P−1, where Q_(max) represents said maximum spreading factor and P represents the corresponding delay spread.
 25. The receiver of claim 20, including a synchronizer to synchronize said sliding window with the symbol rate of the slowest data streams of said signals.
 26. A system for detecting signals in a code division multiple access system, wherein said signals are digital signals exposed to intersymbol interference as well as multiple access interference, wherein said signals are arranged in blocks including first and second data symbol blocks and a midamble therebetween.
 27. A receiver for receiving digital signals exposed to intersymbol interference as well as multiple access interference, the receiver comprising a linear detector for detecting said signals, wherein said signals are digital signals arranged in blocks including first and second data symbol blocks and a midamble therebetween, said detector including an equalizer for combating said intersymbol interference by equalizing said received digital signals as well as mitigating said multiple access interference by detecting said digital signals by means of a sliding window detection.
 28. The receiver of claim 27, wherein said linear detector is a zero forcing detector.
 29. The receiver of claim 27, wherein said linear detector is a minimum mean square error detector.
 30. The receiver of claim 27, for receiving digital signals subjected to spreading by means of spreading factors, said spreading factors including a maximum spreading factor, wherein said sliding window in said linear detector has a width determined by said maximum spreading factor.
 31. The receiver of claim 30, wherein said sliding window in said linear detector has a fixed width given by Q_(max)+P−1, where Q_(max) represents said maximum spreading factor and P represents the corresponding delay spread.
 32. The receiver of claim 27, including a synchronizer to synchronize said sliding window with the symbol rate of the slowest data streams of said signals.
 33. A receiver for receiving digital signals exposed to intersymbol interference (ISI) as well as multiple access interference (MAI) in a multiuser scenario including other active users, wherein said signals are digital signals subject to spreading by means of spreading factors and arranged in blocks including first and second data fields and a midamble therebetween, the receiver including: a memory for storing a desired signal slot; an estimator for extracting said midamble from the signal received and deriving therefrom at least one of a user parameters definition such as a channelization code and a spreading factor as well as estimates for all the other active users such as the number of active users in said slot and respective user parameters therefor, said estimator performing channel estimation by obtaining at least one detection matrix; and a processing unit for demodulating said first data field, and said second data field.
 34. The receiver of claim 33, wherein said estimator derives said estimates for all the other active users such as the number of active users in said slot and respective user parameters therefor by correlating said midamble with an entire set of midambles used by said other active users.
 35. The receiver of claim 33, wherein said processing unit demodulates said first data field starting from the first chip of the slot.
 36. The receiver of claim 33, wherein said processing unit demodulates said first data field starting from the midamble.
 37. The receiver of claim 33, wherein said estimator includes a correlator wherein a shifted version of said midamble is compared with a received midamble to obtain the channel coefficient.
 38. The receiver of claim 37, including an evaluator element for evaluating a delay spread associated to said digital signals as the maximum delay for which the correlator output is above a given threshold.
 39. The receiver of claim 37, including a sensor for sensing a midamble sent in parallel with said midamble by another of said other active users, said correlator being structured to set said given threshold using the correlator output value for the desired user.
 40. The receiver of claim 33, a generator block for generating a plurality of midambles representative of midambles used by other active users within said multiuser scenario.
 41. The receiver of claim 40, wherein said generator block is a look-up table where said plurality of midambles are stored.
 42. The receiver of claim 40, wherein said generator block is a midamble generator generating said plurality of midambles starting from respective midamble seeds.
 43. The receiver of claim 33, wherein a single said detection matrix is obtained in said estimator.
 44. The receiver of claim 33, wherein a plurality of said detection matrixes are obtained in said estimator.
 45. The receiver of claim 33, wherein said at least one detection matrix is computed on the basis of a matrix representative of the channel on which said signals are transmitted and the spreading codes associated therewith.
 46. The receiver of claim 33, wherein said at least one detection matrix is defined as: {tilde over (x)} _(a)(k)={tilde over (T)}·{tilde over (y)}(k) k=1, . . . ,K where: {tilde over (x)}_(a) is the vector of symbols to be detected {tilde over (T)}=({tilde over (G)}^(H)·{tilde over (G)}^(H)+σ_(n) ²·I)^(−1·{tilde over (G)}) ^(H) is a matrix applying linear transformation {tilde over (y)}(k) is the vector of received data k ticks with the symbol interval and $K - \frac{N}{Q}$

 represents the number of symbols in the associated data stream with the largest spreading factor {tilde over (y)}(k)=y ^((Q+P−1))(kQ+P−1) k=1,2, . . . ,Kã(k)=a ^((Q+P−1))(kQ+P−1) k=1,2, . . . ,K By further defining the matrices: {tilde over (G)}=G ^((Q+P−1))(kQ+P−1){tilde over (R)} _(a) =R _(a) ^((Q+P−1))(kQ+P−1){tilde over (R)} _(n) =R _(n) ^((Q+P−1))(kQ+P−1){tilde over (W)} _(MI) =W _(MI) ^((Q+P−1))(kQ+P−1) the linear transformation becomes: $\overset{\sim}{T} = {{\left( {{{\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1} \cdot \overset{\sim}{G}} + {\overset{\sim}{R}}_{a}^{- 1}} \right)^{- 1} \cdot {\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1}} = {{\overset{\sim}{W}}_{MI} \cdot \left( {{\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1} \cdot \overset{\sim}{G}} \right)^{- 1} \cdot {\overset{\sim}{G}}^{H} \cdot {\overset{\sim}{R}}_{n}^{- 1}}}$ 